/*
 * $Id: Object.h,v 1.12 2005-11-24 10:04:22 bacon Exp $
 */

#ifndef _XPO_BAS_OBJECT_H_
#define _XPO_BAS_OBJECT_H_

#include <objc/objc.h>
#include <objc/objc-api.h>

#if defined(__APPLE__) || defined(__MACOSX__)
#include <objc/objc-class.h>
#endif

#include <xp/types.h>
#include <xp/macros.h>

@interface XpObject
{
	struct objc_class* isa;
}

+ (id) alloc;
+ (id) new;
- (id) init;
- (void) dealloc;

- (Class) class;
- (Class) superclass;
- (const char*) className;
- (xp_bool_t) conformsToProtocol: (Protocol*)protocol

#if defined(__APPLE__) || defined(__MACOSX__)
- (id) forward: (SEL)sel: (marg_list)args;
#endif

- (void) subclassResponsibility;

@end

#endif
